package myzzyl.service;

import myzzyl.domain.dto.NursingProjectDto;
import myzzyl.domain.pojo.NursingProject;
import com.baomidou.mybatisplus.extension.service.IService;
import myzzyl.domain.vo.NursingProjectVo;
import myzzyl.response.PageResponse;

import java.util.List;

/**
* @author 33249
* @description 针对表【nursing_project(护理项目表)】的数据库操作Service
* @createDate 2025-08-10 10:20:15
*/
public interface NursingProjectService extends IService<NursingProject> {

    /**
     * 分页获取所有护理项目
     * @param name 项目名称
     * @param status 项目状态
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @return 返回值
     */
    PageResponse<NursingProjectVo> getAll(String name, Integer status, Integer pageNum, Integer pageSize);


    /**
     * 获取护理项目详情
     * @param id 护理项目id
     * @return 返回值
     */
    NursingProjectVo getInfo(Long id);

    /**
     * 新增护理项目
     * @param nursingProjectDto 护理项目表单请求包装类
     * @return 返回值
     */
    boolean add(NursingProjectDto nursingProjectDto);

    /**
     * 编辑护理项目
     * @param nursingProjectDto 护理项目表单请求包装类
     * @return 返回值
     */
    boolean edit(NursingProjectDto nursingProjectDto);

    /**
     * 删除护理项目
     * @param id 护理项目id
     * @return 返回值
     */
    boolean deleteNursingProjectById(Long id);

    /**
     * 启用或禁用护理项目
     * @param id 护理项目id
     * @param status 需要更新的护理项目状态
     * @return 返回值
     */
    boolean enableOrDisableNursingProject(Long id, Integer status);

    /**
     * 获取所有护理项目
     * @return 返回值
     */
    List<NursingProjectVo> listAll();

}
